package com.plian.system.entity.glc;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.plian.system.entity.glc.base.GlcBaseIndicators;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * @description:任期经营业绩考核指标主表
 * @author: zhangsk
 * @create: 2025-01-16
 */
@Data
@TableName("glc_base_business_indicators")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "GlcBaseBusinessIndicatorsRq对象", description = "管理层任期经营业绩考核指标主表")
public class GlcBaseBusinessIndicators extends GlcBaseIndicators {

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-财务绩效")
    private List<GlcBusinessIndicators> businessIndicators;

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-任务绩效")
    private List<GlcTaskIndicators> taskIndicators;

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-重大工程考核")
    private List<GlcMajorProject> majorProjects;

    @TableField(exist = false)
    @ApiModelProperty(value = "子表-主责主业")
    private List<GlcMainBusiness> mainBusinesses;

    @ApiModelProperty(value = "上个版本id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long lastVersionId;

    @ApiModelProperty(value = "初始版本id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long initialId;

    @ApiModelProperty(value = "版本号")
    private Integer version;

    @ApiModelProperty(value = "指标状态  1可引用状态  2变更审批中 ")
    private Integer indicatorStatus;

    @ApiModelProperty(value = "是否最新 1否2是")
    private Integer isLatest;

    @ApiModelProperty(value = "数据来源 null为系统填报 对应用户id")
    private String dataSource;

    @ApiModelProperty(value = "数据来源id", required = true)
    private String dataSourceId;

    @ApiModelProperty(value = "初始版本id")
    @TableField(exist = false)
    private String dataInitialId;
    @ApiModelProperty(value = "经理人")
    private String  staffName;
    @ApiModelProperty(value = "经理人id")
    private Long  staffId;
}
